The invention relates generally to mass storage systems, and in particular, to mass storage systems in which stored logical volumes are duplicated in mirrored form.
Mass storage systems have grown significantly in capacity over the past years while maintaining a lower cost per stored byte. Accordingly, various methods and systems have been developed for increasing the reliability of the systems and to protect against failures. One such policy includes the storage of two or more copies of the data in what are called mirrored drives. This system operates to maintain all copies up to date, although at any particular moment, one or another copy may be the most complete. Most typically, there are two copies.
In a typical system, each physical drive is often divided into a plurality of logical volumes. Under these circumstances, each logical volume appears to the host computer or computers to be a separate drive and operations take place with regard to the logical volume as if it were a physical volume. Accordingly, some logical volumes may be accessed substantially more often for read and/or write operations, and the nature of the operations may vary from random accesses to sequential accesses during any particular sequence of read or write operations. Depending upon the nature and variety of read and write operations to a physical drive containing many logical volumes, the disk read/write heads may be severely worked and the access time may, on average, be increased if sequential read and write locations are not located near one another.
One method for combating such problems is to set a mirror service policy, statically, which attempts to optimize the reading and writing of data. Such a policy may, for example, assume that most data transfers are sequential in nature, or that they are random. The policies can include, for example, interleaved, mixed, dedicated, or other policies which appear, after reviewing the manner in which a drive is to be used, to provide the best average time access to the data.
One such policy is to only service requests that fall within the first half of a logical volume. Another policy might be to only service requests that fall in odd groups with a group being defined in terms of a number of blocks. For instance the first group (blocks 0-959) will be serviced by copy 1 and the next group by copy 2, etc. The limitations of these policies are due to its static nature. These policies are chosen at system configuration time and never change. Some static policies favor sequential access patterns while others favor random access patterns. Because of users' changing access patterns, neither one is optimal.